There is a continuing need to develop user-friendly and powerful computer software. Causing the computer to automatically perform certain functions that previously required direct user interaction is one way in which software developers can make software programs easier and more convenient to use. For example, configuration programs have been developed that automatically set-up a user's computer workspace upon system start-up. These configuration programs launch certain applications and open certain files in accordance with a user profile so that the user does not have to go through the process of manually launching the applications and opening the files. Another example of an automatically-performed computer function is a word processing program that sets a new document to the user's preferred font, type size, and page layout when the document is initially opened. This saves the user from the process of manually setting these parameters within the new document.
The preceding examples of system and document initialization are relatively simple examples of proactive interface management. There are many other more complicated situations in which proactive interface management can be employed to save the user the time and frustration of having to perform certain steps manually. In these complicated situations, however, sophisticated logic may have to be employed to ascertain a user's goals and automatically take certain steps toward attaining those goals. For example, the process of extracting data from one file and inserting the data into another file through the usual "cut and paste" procedures can be tedious. A source program must be launched; a source file must be opened; the data to be extracted must be located and "cut"; a target program must be launched; a target file must be opened and the destination location identified; and finally the extracted data may be "pasted" into the destination location within the target file.
These data transfer procedures can become time consuming and tedious if performed repetitively. In particular, many users have a recurring goal of extracting schedule-related data from electronic mail (e-mail) or posted on Internet web page and storing the extracted data in an electronic calendar file. For this type of recurring data extraction task, it would be advantageous if the computer system could ascertain the user's goal from a few simple commands, and then automatically perform the "cut and paste" operation without further input from the user. Even if the computer system cannot automatically complete the entire "cut and paste" operation, it would be helpful if the computer system performed part of the task and then allowed the user to easily complete the remaining portion of the task, for example by confirming or altering actions suggested by the computer program. The specific situation of extracting schedule-related data from e-mail, and storing the extracted data in an electronic calendar program is described in more detail below.
Computer users are increasingly interconnecting their computers through networks, such as local area networks, wide area networks, ethernets, and the Internet. Interconnected computer users typically communicate with each other through e-mail, which is a real-time, paper-free, cost-effective mode of communication that has become a standard feature of virtually all computer networks. User-friendly, menu-driven e-mail application programs allow users to generate e-mail messages quickly and send them to large numbers of recipients. A recipient usually receives an e-mail message within seconds. A few simple key strokes or point-and-click operations allow the recipient to activate his or her e-mail application program and read the e-mail message. Specifically, an e-mail application program responds to these key strokes or point-and-click operations by storing the e-mail message in an e-mail file on the user's computer and displaying the e-mail message within an e-mail application window on the user's computer monitor.
Computer users in workplaces that rely on e-mail may spend a lot of time reading, writing, and handling e-mail messages. A convenient and efficient system for handling e-mail messages may be critical to the productivity of these workplaces. For example, a received e-mail message may contain schedule-related information, such as a meeting notice, seminar announcement, lunch date, or the like. A computer user may also rely on an electronic calendar program to organize a personal schedule. A computer user may therefore have a need to transfer schedule-related information from an e-mail message to an electronic calendar file. For example, a computer user may receive an e-mail message containing a notice of a meeting that the user wants to attend. Upon reading the e-mail message, the user may need to record a notation of the meeting in an electronic calendar file.
If the electronic calendar program is not resident in the computer system's memory, the user must first launch the calendar program and open a particular calendar file in order to transfer the schedule-related information from the e-mail file to the calendar file. Upon opening a particular calendar file, the electronic calendar program typically displays information from the calendar file within an electronic calendar application window on the user's computer monitor. Opening a calendar file thus causes the display of the e-mail application window to be replaced by the display of the electronic calendar application window. Once the calendar file has been open, the user typically must scroll to or otherwise locate the correct date in the calendar file so that the desired information from the calendar file is displayed within the electronic calendar application window. Once the information for the correct date is displayed within the electronic calendar application window, the user may have to refer back to the e-mail application window before entering a notation into the electronic calendar application window. Thus, the user may have to switch back and forth between the e-mail application window and the electronic calendar application window in order to correctly record the notation in the electronic calendar file. This process is slow, annoying, and presents the user with opportunities to make errors in transferring the information.
It would therefore be advantageous to have a system to facilitate transferring goal-related information from a source file, such as an e-mail file, to a target file, such as an electronic calendar file. It would be particularly advantageous if the system could automatically interpret the source file so that the correct information could be automatically extracted and stored in the target file with minimal user involvement. This task may be difficult if schedule-related information is to be extracted from an e-mail file because an e-mail file typically includes information written in free-text, such as prose. Interpreting free-text information is a cognitive function that is difficult to emulate with programmed logic.
More specifically, an e-mail message is typically displayed within a semi-structured e-mail application window that includes a structured area and an unstructured area. The structured area of the e-mail application window typically includes a number of fields for predefined information, such as fields for "to," "from," "cc," "subject," and "date." The unstructured area of the e-mail application window typically includes free-text information written in prose. Furthermore, schedule-related information is usually embedded within the free-text information included in the unstructured area of the e-mail application window. In some cases, however, the structured fields may also contain schedule-related information or information that is helpful in interpreting certain free-text terms included in the unstructured area of the e-mail application window.
The meaning of a particular message term in an e-mail file may therefore depend on the meaning of other terms within the e-mail file. Indeed, the meaning of a particular e-mail message term may depend on the context of the free-text portion of the message as a whole. Similarly, the meaning of message terms may vary from user to user depending on the lexicon used by authors of messages. Prior information handling systems do not handle the tasks of interpreting free-text information or adapting to a specialized lexicon very well. There is therefore a need for an improved method and system for interpreting source files, such as e-mail files, that contain free-text information. It would be advantageous for the improved method and system to include an adaptive lexicon, in which the logic used to interpret free-text information may be tailored in response to source files previously interpreted for a particular user.
The needs identified above are described in the context of a system in which the goal is extracting schedule-related information from an e-mail file and storing the extracted information in an electronic calendar file. A similar need exists, however, for many different goals for which information may be extracted from a free-text source file and stored in a predefined format in a target file. For example, a sales manager may have a need to extract sales statistics from free-text sales reports and store them in a database. Similarly, a researcher may have a need to extract information related to a particular research topic from free-text files within an electronic library, such as "LEXIS," and store the extracted information in a specialized format.
Generally stated, there is a need for an improved method for ascertaining a user's goals and automatically taking certain steps toward attaining those goals. Specifically, there is a need for a proactive interface management system that, in recognition of user goals, automatically identifies and extracts relevant source information from one or more source objects for application to one or more target objects.
More specifically, there is a need for an improved method and system for interpreting a source file containing free-text information, identifying goal-related terms, and extracting the goal-related terms for storage in a target file in a predefined format. There is also a need for ensuring that the source file has been properly interpreted prior to recording the extracted information in the target file. There is also a need for an information interpretation and extraction system with an adaptive lexicon, in which the logic used to interpret free-text information is tailored in response to source files previously interpreted for a particular user.